package com.founder.android.parser;

import android.os.Handler;

/**
 * 文档解析器基类
 * @author chen_weihua
 *
 */
public class BaseParser extends Thread {
	
	protected ParserListener callback;
	
	protected Handler osHandler;
	
	/**
	 * 初始化方法
	 * @param osHandler
	 * @param callback
	 */
	public BaseParser(Handler osHandler, ParserListener callback) {
		this.osHandler = osHandler;
		this.callback = callback;
	}
	
	/**
	 * 文档解析开始
	 */
	protected void onParserDocumentStart() {
		ParserWrapper wrapper = new ParserWrapper(callback);
		wrapper.setBegin();
		osHandler.post(wrapper);
	}
	
	/**
	 * 找到一个指定的节点元素
	 * @param data
	 */
	protected void onParserItem(Object data) {
		ParserWrapper wrapper = new ParserWrapper(callback);
		wrapper.setData(data);
		osHandler.post(wrapper);
	}
	
	/**
	 * 文档解析结束
	 */
	protected void onParserDocumentEnd() {
		ParserWrapper wrapper = new ParserWrapper(callback);
		wrapper.setEnd();
		osHandler.post(wrapper);
	}
	
	/**
	 * 文档解析出错
	 * @param e
	 */
	protected void onParserError(Throwable e) {
		ParserWrapper wrapper = new ParserWrapper(callback);
		wrapper.setError(e);
		osHandler.post(wrapper);
	}
	
}
